/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ipodhash.beans;

import ipodhash.beans.Musica;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

/**
 *
 * @author rooke
 */
public class Serializa {

    public static void serializaArrayListMusica(ArrayList<Musica> musicas, int qualHash) throws FileNotFoundException, IOException {
        //Gera o arquivo para armazenar o objeto
        FileOutputStream arquivoGrav;
        switch (qualHash) {
            case 1:
                if (!new File("dados1/").exists()) {
                    new File("dados1/").mkdirs();
                }
                arquivoGrav = new FileOutputStream("dados1/music.dat");
                break;
            case 2:
                if (!new File("dados2/").exists()) {
                    new File("dados2/").mkdirs();
                }
                arquivoGrav = new FileOutputStream("dados2/music.dat");
                break;
            case 3:
                if (!new File("dados3/").exists()) {
                    new File("dados3/").mkdirs();
                }
                arquivoGrav = new FileOutputStream("dados3/music.dat");
                break;
            default:
                if (!new File("dados1/").exists()) {
                    new File("dados1/").mkdirs();
                }
                arquivoGrav = new FileOutputStream("dados1/music.dat");
        }

        //Classe responsavel por inserir os objetos
        ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);

        //Grava o objeto no arquivo
        objGravar.writeObject(musicas);

        objGravar.flush();

        objGravar.close();

        arquivoGrav.flush();

        arquivoGrav.close();
    }

    public static ArrayList<Musica> desserializaArrayListMusica(int qualHash) throws FileNotFoundException, IOException, ClassNotFoundException {

        //arquivo onde estao os dados serializados
        FileInputStream arqLeitura;
        switch (qualHash) {
            case 1:
                arqLeitura = new FileInputStream("dados1/music.dat");
                break;
            case 2:
                arqLeitura = new FileInputStream("dados2/music.dat");
                break;
            case 3:
                arqLeitura = new FileInputStream("dados3/music.dat");
                break;
            default:
                arqLeitura = new FileInputStream("dados1/music.dat");
        }


        //objeto que vai ler os dados do arquivo
        ObjectInputStream in = new ObjectInputStream(arqLeitura);

        //recupera o array list de Musicas
        ArrayList<Musica> lista = (ArrayList<Musica>) in.readObject();


        arqLeitura.close();
        in.close();

        return lista;

    }
}
